/*
 * =====================================================================================
 *
 *       Filename:  c_string.h
 *
 *    Description:  String utils for C. 
 *
 *        Version:  1.0
 *        Created:  10/10/2010 02:35:56 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Justin Lei GAO (leikao), leikao@gmail.com
 *        Company:  
 *
 * =====================================================================================
 */


#ifndef  C_STRING_INC
#define  C_STRING_INC

#include	<string.h>


/*-----------------------------------------------------------------------------
 *  全局参数 
 *-----------------------------------------------------------------------------*/
#define MAX_STRING_LEN 1024 /* 最大字符串长度 */


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  strip_head
 *  Description:  Remove blanks from the heading of a string. 
 *        Input:  
 *       Output:  
 *       Return:  出错返回 -1；否则返回处理后的字符串长度。 
 * =====================================================================================
 */
    int
strip_head ( char* src, char* dst ); 


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  strip_tail
 *  Description:  Remove blanks at the tail of a string. 
 *        Input:  
 *       Output:  
 *       Return:  出错返回 -1；否则返回处理后的字符串长度。 
 * =====================================================================================
 */
   int 
strip_tail ( char* src, char* dst ); 


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  strip
 *  Description:  Remove the blanks from the head and tail of a string. 
 *        Input:  
 *       Output:  
 *       Return:  出错返回 -1；否则返回处理后的字符串长度。 
 * =====================================================================================
 */
    int
strip ( char* src, char* dst ); 


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  strip_all
 *  Description:  Remove all the blanks from a string. 
 *        Input:  
 *       Output:  
 *       Return:  出错返回 -1；否则返回处理后的字符串长度。 
 * =====================================================================================
 */
    int
strip_all ( char* src, char* dst); 


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  get_fields_num
 *  Description:  Get the words' number of a string. 
 *        Input:  
 *       Output:  
 *       Return:  出错返回 -1；否则返回单词数量。 
 * =====================================================================================
 */
    int
get_fields_num ( char* src ); 


/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  get_field_value
 *  Description:  
 *        Input:  
 *       Output:  
 *       Return:  出错返回 -1；否则返回单词长度。 
 * =====================================================================================
 */
    int
get_field_value ( char* src, int idx, char* word ); 


#endif 
